# 程序的main文件应该以如下注释开头：表示在Linux环境下运行时，使用python3解释器运行程序。
#!/usr/bin/python3

# 推荐使用python3环境：表示在Linux环境下运行时，从环境变量PATH中查找python3解释器，使用python3解释器运行程序。
#!/usr/bin/env python3


# 爬虫主程序
# 用于调度其它模块

from data_storage import DataStorage
from html_downloader import HtmlDownloader
from html_parser import HtmlParser
from url_manager import UrlManager


class SpiderMain:

    # 初始化爬虫相关模块
    def __init__(self):
        self.url_manager = UrlManager()
        self.html_downloader = HtmlDownloader()
        self.html_parser = HtmlParser()
        self.data_storage = DataStorage()


    # 爬虫主程序
    def start(self):
        # 通过url_manager获取初始url
        self.url_manager.add_new_url("http://127.0.0.1:8848/xiaomi/index.html")
        url = self.url_manager.get_new_url()
        html = self.html_downloader.download(url)
        result = self.html_parser.parser(html)
        self.data_storage.storage(result)

# 程序入口
if __name__ == '__main__':
    spider = SpiderMain()
    # 启动爬虫
    spider.start()